package com.gupaoedu.vip.lazy;

/**
 * @Description: 单例模式之懒汉3
 * 在外部需要使用时才初始化
 * 优点：此懒汉式在类需要使用时才初始化并加载
 * @Author: fuyl
 * @since 2019年03月13日
 * @Version: 1.0
 */
public class LazyThree {

    private LazyThree(){}

    /** volatile 防止指令重排序 */
    private volatile static LazyThree lazyThree = null;

    /** 双重校验 */
    public static LazyThree getInstance() {
        if(lazyThree == null) {
            synchronized (LazyThree.class) {
                if(lazyThree == null){
                    lazyThree = new LazyThree();
                }
            }
        }
        return lazyThree;
    }
}
